//package com.mco.utils;
//
//import cn.hutool.core.util.RandomUtil;
//import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import redis.clients.jedis.GeoCoordinate;
//import redis.clients.jedis.Jedis;
//import redis.clients.jedis.JedisPool;
//import redis.clients.jedis.args.GeoUnit;
//
//import java.time.Duration;
//import java.util.HashMap;
//import java.util.Map;
//import java.util.Objects;
//
///**
// * @author admin
// */
//public class JedisPoolUtil {
//    private static Logger logger = LoggerFactory.getLogger(JedisPoolUtil.class);
//
//    public static void main(String[] args) {
//        JedisPool jedisPool = getJedisPool();
//        Jedis jedis = jedisPool.getResource();
//
//        // 字符串
//        String str_key = getKey();
//        jedis.set(str_key, getValue());
//        logger.info(jedis.get(str_key));
//
//        // set
//        String set_key = getKey();
//        jedis.sadd(set_key, getValue(), getValue(), getValue());
//        jedis.smembers(set_key).forEach(k -> {
//            logger.info(k);
//        });
//
//
//        //zSet
//        String zSet_key = getKey();
//        jedis.zadd(zSet_key, getMap());
//        jedis.zrange(zSet_key, 0, -1).forEach(a -> {
//            logger.info(a);
//        });
//
//        //hash
//        String hash_key = getKey();
//        jedis.hset(hash_key, getMapStr());
//        for (String hkey : jedis.hkeys(hash_key)) {
//            logger.info(jedis.hget(hash_key, hkey));
//        }
//
//
//        //list
//        String list_key = getKey();
//        jedis.lpush(list_key, getValue(), getValue(), getValue());
//        for (String s : jedis.lrange(list_key, 0, -1)) {
//            logger.info(s);
//        }
//
//        //geo
//        String geo_key = getKey();
//        jedis.geoadd(geo_key, getGeo());
//        logger.info(String.valueOf(jedis.geodist(geo_key, "成都", "上海", GeoUnit.KM)));
//
//        //bit
//        String bit_key = getKey();
//        jedis.setbit(bit_key, 79, true);
//        logger.info(String.valueOf(jedis.getbit(bit_key, 79)));
//
//        //hyperloglog
//        String hyperloglog_key = getKey();
//        jedis.pfadd(hyperloglog_key, getValue(), getValue(), getValue(), getValue());
//        logger.info(String.valueOf(jedis.pfcount(hyperloglog_key)));
//        try {
//            if (!Objects.isNull(jedis)) {
//                jedis.close();
//            }
//        } finally {
//            jedis = null;
//        }
//        try {
//            if (Objects.isNull(jedisPool)){
//                jedisPool.close();
//            }
//        } finally {
//            jedisPool = null;
//        }
//    }
//
//    private static Map<String, GeoCoordinate> getGeo() {
//        Map<String, GeoCoordinate> geoCoordinateHashMap = new HashMap<>(5);
//        geoCoordinateHashMap.put("成都", new GeoCoordinate(103.954887, 30.569293));
//        geoCoordinateHashMap.put("北京", new GeoCoordinate(116.427185, 39.93682));
//        geoCoordinateHashMap.put("上海", new GeoCoordinate(121.477665, 31.236176));
//        geoCoordinateHashMap.put("西安", new GeoCoordinate(108.952789, 34.36515));
//        geoCoordinateHashMap.put("重庆", new GeoCoordinate(106.454377, 29.581309));
//        return geoCoordinateHashMap;
//    }
//
//    private static Map<String, String> getMapStr() {
//        Map<String, String> map = new HashMap<>(5);
//        for (int i = 0; i < 5; i++) {
//            map.put("HMOC-" + RandomUtil.randomNumbers(4), RandomUtil.randomString("Hash", 10));
//        }
//        return map;
//    }
//
//    private static Map<String, Double> getMap() {
//        Map<String, Double> map = new HashMap<>(5);
//        for (int i = 0; i < 5; i++) {
//            map.put("MOC-" + RandomUtil.randomNumbers(4), RandomUtil.randomDouble(1, 10));
//        }
//        return map;
//    }
//
//    private static String getValue() {
//        return RandomUtil.randomStringUpper(6);
//    }
//
//    private static String getKey() {
//        return "TOC-" + RandomUtil.randomString(6);
//    }
//
//    // 获取Jedispoll对象
//    private static JedisPool getJedisPool() {
//        GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
//        poolConfig.setMaxIdle(8);
//        poolConfig.setMinIdle(2);
//        poolConfig.setMaxWait(Duration.ofSeconds(30000));
//        return new JedisPool(poolConfig, "120.77.64.190", 6379, 100000, "111111");
//    }
//}
